home *** CD-ROM | disk | FTP | other *** search
/ System Booster / System Booster.iso / Archives / GNU / GNUPLOTsrc.lha / term / x11.trm < prev    next >
Encoding:
Text File  |  1996-01-22  |  20.1 KB  |  621 lines

  1. /*
  2.  * $Id: x11.trm,v 1.14 1995/12/20 21:48:21 drd Exp $
  3.  *
  4.  */
  5.  
  6. /*
  7.  *    x11.trm  --- inboard terminal driver for X11
  8.  */
  9. #ifndef GOT_DRIVER_H
  10. #include "driver.h"
  11. #endif
  12.  
  13. #ifdef TERM_REGISTER
  14. register_term(x11)
  15. #endif
  16.  
  17. #ifdef TERM_PROTO
  18. int X11_args __P((int argc, char *argv[]));
  19. TERM_PUBLIC void X11_init __P((void));
  20. TERM_PUBLIC void X11_graphics __P((void));
  21. TERM_PUBLIC void X11_text __P((void));
  22. TERM_PUBLIC void X11_reset __P((void));
  23. TERM_PUBLIC void X11_move __P((unsigned int x, unsigned int y));
  24. TERM_PUBLIC void X11_vector __P((unsigned int x, unsigned int y));
  25. TERM_PUBLIC void X11_linetype __P((int lt));
  26. TERM_PUBLIC void X11_put_text __P((unsigned int x, unsigned int y, char str[]));
  27. TERM_PUBLIC int X11_justify_text __P((enum JUSTIFY mode));
  28. TERM_PUBLIC void X11_point __P((unsigned int x, unsigned int y, int number));
  29.  
  30. #define X11_XMAX 4096
  31. #define X11_YMAX 4096
  32.  
  33. /* approximations for typical font/screen sizes */
  34. #define X11_VCHAR (X11_YMAX/25) 
  35. #define X11_HCHAR (X11_XMAX/100) 
  36. #define X11_VTIC (X11_YMAX/100)
  37. #define X11_HTIC (X11_XMAX/150)
  38. #endif
  39.  
  40.  
  41. #ifndef TERM_PROTO_ONLY
  42.  
  43. #ifdef TERM_BODY
  44. int X11_Display = 0; /* non-zero if '-display' found on command line */
  45.  
  46. #define X11_nopts 29
  47. static char X11_opts[X11_nopts][20] = {
  48.    "-mono", "-gray", "-clear", "-tvtwm", "-pointsize",
  49.    "-iconic", "-rv", "-reverse", "+rv", "-synchronous", 
  50.    "-display", "-geometry", "-bg", "-background", "-bd", "-bordercolor", "-bw",
  51.    "-borderwidth", "-fg", "-foreground", "-fn", "-font", "-name", 
  52.    "-selectionTimeout", "-title", "-xnllanguage", "-xrm", "-raise", "-persist"
  53.    };
  54.  
  55. static int X11_optarg[X11_nopts] = { 
  56.    0, 0, 0, 0, 1,
  57.    0, 0, 0, 0, 0,
  58.    1, 1, 1, 1, 1, 1, 1,
  59.    1, 1, 1, 1, 1, 1, 
  60.    1, 1, 1, 1
  61.    };
  62.  
  63. static FILE *X11_ipc; 
  64. static char X11_command[1024]= "gnuplot_x11";
  65.  
  66. /*   X11_args - scan gnuplot command line for standard X Toolkit options
  67.  * called from plot.c so must not be TERM_PUBLIC (which may be static)
  68.  */
  69.  
  70. int X11_args(argc, argv) int argc; char *argv[]; {
  71.    int nx11 = 0, n;
  72.  
  73.    while(++argv, --argc > 0) {
  74.       for (n=0; n<X11_nopts; n++) {
  75.      if (!strcmp(*argv, X11_opts[n])) {
  76.         strcat(X11_command, " ");
  77.         strcat(X11_command, *argv); 
  78.         if (strcmp(*argv, "-display")==0)
  79.          X11_Display++;
  80.         if (X11_optarg[n]) {
  81.            if (--argc <= 0) return(nx11);
  82.            strcat(X11_command, " \"");
  83.            strcat(X11_command, *++argv); 
  84.            strcat(X11_command, "\"");
  85.            nx11++;
  86.            }
  87.         nx11++; break;
  88.         }
  89.      }
  90.       if (n == X11_nopts) break; 
  91.       }
  92.    return(nx11);
  93.    }
  94.  
  95. /*-----------------------------------------------------------------------------
  96.  *   Three different versions of the remainder of the X11 terminal driver
  97.  *   are provided to support three different types of IPC with the
  98.  *   gnuplot_x11 outboard terminal driver:
  99.  * 
  100.  *   DEFAULT_X11:      popen() pipe for most un*x platforms
  101.  *
  102.  *   CRIPPLED_SELECT : file IPC for un*x platforms with incomplete or faulty
  103.  *                     implementation of BSD select()
  104.  *
  105.  *   VMS :             mailbox/spawn IPC
  106.  *---------------------------------------------------------------------------*/
  107.  
  108. #define DEFAULT_X11
  109. #if defined(VMS) || defined(CRIPPLED_SELECT)
  110. #undef DEFAULT_X11
  111. #endif
  112. #if defined(VMS) && defined(CRIPPLED_SELECT)
  113. Error. Incompatible options.
  114. #endif
  115.  
  116.  
  117. #ifdef DEFAULT_X11
  118. /*-----------------------------------------------------------------------------
  119.  *   DEFAULT_X11 popen() pipe IPC
  120.  *---------------------------------------------------------------------------*/
  121. FILE *popen();
  122.  
  123. TERM_PUBLIC void X11_init() { X11_ipc = popen(X11_command, "w"); }
  124.  
  125. TERM_PUBLIC void X11_graphics() { 
  126.    fprintf(X11_ipc, "G\n"); 
  127.    fprintf(X11_ipc, "P7%04d%04d\n", /* size of point symbols */
  128.        (int) (term->h_tic *pointsize * 0.5), (int) (term->v_tic*pointsize*0.5)); 
  129. #ifdef ULTRIX_KLUDGE
  130.    fflush(X11_ipc);
  131. #endif
  132.    }
  133.  
  134. TERM_PUBLIC void X11_text() { 
  135.    fprintf(X11_ipc, "E\n"); fflush(X11_ipc);
  136. #ifdef ULTRIX_KLUDGE
  137.    fprintf(X11_ipc, "E\n"); fflush(X11_ipc);
  138. #endif
  139.    }
  140.  
  141. TERM_PUBLIC void X11_reset() { fprintf(X11_ipc, "R\n"); fflush(X11_ipc); pclose(X11_ipc); }
  142.  
  143. TERM_PUBLIC void X11_move(x,y) unsigned int x,y; { fprintf(X11_ipc, "M%04d%04d\n", x, y); }
  144.  
  145. TERM_PUBLIC void X11_vector(x,y) unsigned int x,y; { fprintf(X11_ipc, "V%04d%04d\n", x, y); }
  146.  
  147. TERM_PUBLIC void X11_linetype(lt) int lt; { fprintf(X11_ipc, "L%04d\n", lt); }
  148.  
  149. TERM_PUBLIC void X11_put_text(x,y,str) unsigned int x,y; char str[]; {
  150.     /* badly outrange labels can overflow into text field */
  151.     if (x<10000 && y<10000)
  152.        fprintf(X11_ipc, "T%04d%04d%s\n", x, y, str);
  153.    }
  154.  
  155. TERM_PUBLIC int X11_justify_text(mode) enum JUSTIFY mode; {
  156.    fprintf(X11_ipc, "J%04d\n", mode);
  157.    return(TRUE);
  158.    }
  159.  
  160. TERM_PUBLIC void X11_point(x,y,number) unsigned int x,y; int number; {
  161.    if (number>=0)
  162.       number %= POINT_TYPES;
  163.    number += 1;
  164.    fprintf(X11_ipc, "P%01d%04d%04d\n", number, x, y);
  165.    }
  166.  
  167. #endif /* DEFAULT_X11 */
  168.  
  169.  
  170. #ifdef CRIPPLED_SELECT
  171. /*-----------------------------------------------------------------------------
  172.  *   CRIPPLED_SELECT file IPC
  173.  *---------------------------------------------------------------------------*/
  174.  
  175. char X11_tmp[32], X11_tmp0[32], X11_shutdown[32];
  176. int X11_pid;
  177.  
  178. TERM_PUBLIC void X11_init() { 
  179.    if (!(X11_pid = fork())) {
  180.       execl("/bin/sh", "sh", "-c", X11_command, NULL);
  181.       _exit(1);
  182.       }
  183.    sprintf(X11_tmp, "/tmp/Gnuplot_%d", X11_pid);
  184.    sprintf(X11_tmp0, "%s-", X11_tmp);
  185.    sprintf(X11_shutdown, "echo R >%s", X11_tmp);
  186.    }
  187.  
  188. TERM_PUBLIC void X11_graphics() { 
  189.    X11_ipc = fopen(X11_tmp0, "w"); 
  190.    if (!X11_ipc) { perror(X11_tmp0); system(X11_shutdown); exit(1); }
  191.    fprintf(X11_ipc, "G\n"); 
  192.    fprintf(X11_ipc, "P7%04d%04d\n", /* size of point symbols */
  193.        (int) (term->h_tic *pointsize * 0.5), (int) (term->v_tic*pointsize*0.5)); 
  194. #ifdef ULTRIX_KLUDGE
  195.    fflush(X11_ipc);
  196. #endif
  197.    }
  198.  
  199. void X11_text() { 
  200.    fprintf(X11_ipc, "E\n"); 
  201. #ifdef ULTRIX_KLUDGE
  202.    fprintf(X11_ipc, "E\n");
  203. #endif
  204.    fclose(X11_ipc);
  205.    rename(X11_tmp0, X11_tmp);
  206.    }
  207.  
  208. TERM_PUBLIC void X11_reset() { system(X11_shutdown); }
  209.  
  210. TERM_PUBLIC void X11_move(x,y) unsigned int x,y; { fprintf(X11_ipc, "M%04d%04d\n", x, y); }
  211.  
  212. TERM_PUBLIC void X11_vector(x,y) unsigned int x,y; { fprintf(X11_ipc, "V%04d%04d\n", x, y); }
  213.  
  214. TERM_PUBLIC void X11_linetype(lt) int lt; { fprintf(X11_ipc, "L%04d\n", lt); }
  215.  
  216. TERM_PUBLIC void X11_put_text(x,y,str) unsigned int x,y; char str[]; {
  217.     /* badly outrange labels can overflow into text field */
  218.     if (x<10000 && y<10000)
  219.        fprintf(X11_ipc, "T%04d%04d%s\n", x, y, str);
  220.    }
  221.  
  222. TERM_PUBLIC int X11_justify_text(mode) enum JUSTIFY mode; {
  223.    fprintf(X11_ipc, "J%04d\n", mode);
  224.    return(TRUE);
  225.    }
  226.  
  227. TERM_PUBLIC void X11_point(x,y,number) unsigned int x,y; int number; {
  228.    if (number>=0)
  229.       number %= POINT_TYPES;
  230.    number += 1;
  231.    fprintf(X11_ipc, "P%01d%04d%04d\n", number, x, y);
  232.    }
  233. #endif /* CRIPPLED_SELECT */
  234.  
  235.  
  236. #ifdef VMS
  237. /*-----------------------------------------------------------------------------
  238.  *   VMS mailbox/spawn IPC - Yehavi Bourvine - YEHAVI@VMS.HUJI.AC.IL
  239.  *---------------------------------------------------------------------------*/
  240.  
  241. #include <iodef.h>
  242. #include <descrip.h>
  243. #define MAILBOX "PLOT_X11$MAILBOX"
  244.  
  245. #ifdef __GNUC__
  246. #include <errno.h>
  247. #else
  248. int vaxc$errno;
  249. #endif
  250. static short X11_channel;
  251. static $DESCRIPTOR(lognamedsc,MAILBOX);
  252.  
  253. TERM_PUBLIC void X11_init() {
  254.   int one = 1;
  255.    /* Create a descriptor for the command. $DESCRIP doesn't work in 
  256.    this context... */
  257.    struct { 
  258.       short size, type; 
  259.       char *address;
  260.       } pgmdsc = { strlen(X11_command), 0, X11_command };
  261.  
  262.  
  263.    /* Create a mailbox which will be used as a pipe for commands to the 
  264.    subprocess.  What we'll write to it will be read by the subprocess as 
  265.    its STDIN. */
  266.    vaxc$errno = sys$crembx(0,&X11_channel,128,128,0,0,&lognamedsc,0);
  267.    if (!(vaxc$errno)&1) {
  268.       printf("SYS$CreMbx failed with status=%d\r\n", vaxc$errno);
  269.       os_error("sys$crembx failed",NO_CARET);
  270.       }
  271.  
  272.    /* Assign an I/O channel to it */
  273.    vaxc$errno = sys$assign(&lognamedsc,&X11_channel,0,0,0);
  274.    if (!(vaxc$errno & 1)) {
  275.       printf("SYS$Assign failed with status=%d\r\n", vaxc$errno);
  276.       os_error("sys$crembx failed",NO_CARET);
  277.       }
  278.  
  279.    /* Create a subprocess whose input is this mailbox. */
  280.    vaxc$errno = lib$spawn(&pgmdsc,&lognamedsc,0,&one,0,0,0,0,0,0,0,0,0);
  281.    if (!((vaxc$errno) & 1)) {
  282.       printf("LIB$SPAWN failed with status=%d\r\n", vaxc$errno);
  283.       os_error("lib$spawn failed",NO_CARET);
  284.       }
  285.    }
  286.  
  287. /*   We use $QIO in order to avoid buffering problems, although it might 
  288.  *   work  as well with simple Fprintf calls.  */
  289.  
  290. static void X11_vmsqiow(buf) char *buf; {
  291.    int status = sys$qiow(0, X11_channel, IO$_WRITEVBLK, 0, 0, 0, 
  292.              buf, strlen(buf), 0, 0, 0, 0);
  293.    if((status & 0x1) == 0) exit(status);
  294.    }
  295.  
  296. static char   X11_vmsbuf[512];
  297.  
  298. TERM_PUBLIC void X11_graphics() { 
  299.    sprintf(X11_vmsbuf, "G\n");
  300.    X11_vmsqiow(X11_vmsbuf);
  301.    sprintf(X11_vmsbuf, "P7%04d%04d\n", /* size of point symbols */
  302.        (int) (term->h_tic *pointsize * 0.5), (int) (term->v_tic*pointsize*0.5)); 
  303.  
  304.    X11_vmsqiow(X11_vmsbuf);
  305.    }
  306.  
  307. TERM_PUBLIC void X11_text() {
  308.    sprintf(X11_vmsbuf, "E\n");
  309.    X11_vmsqiow(X11_vmsbuf);
  310.    }
  311.  
  312. TERM_PUBLIC void X11_reset() { 
  313.    sprintf(X11_vmsbuf, "R\n");
  314.    X11_vmsqiow(X11_vmsbuf);
  315.    sleep(2);        /* Wait for subprocess to finish */
  316.    sys$dassgn(X11_channel);
  317.    }
  318.  
  319. TERM_PUBLIC void X11_move(x,y) unsigned int x,y; { 
  320.    sprintf(X11_vmsbuf, "M%04d%04d\n", x, y);
  321.    X11_vmsqiow(X11_vmsbuf);
  322.    }
  323.  
  324. TERM_PUBLIC void X11_vector(x,y) unsigned int x,y; { 
  325.    sprintf(X11_vmsbuf, "V%04d%04d\n", x, y);
  326.    X11_vmsqiow(X11_vmsbuf);
  327.    }
  328.  
  329. TERM_PUBLIC void X11_linetype(lt) int lt; { 
  330.    sprintf(X11_vmsbuf, "L%04d\n", lt);
  331.    X11_vmsqiow(X11_vmsbuf);
  332.    }
  333.  
  334. TERM_PUBLIC void X11_put_text(x,y,str) unsigned int x,y; char str[]; { 
  335.     /* badly outrange labels can overflow into text field */
  336.     if (x<10000 && y<10000) {
  337.        sprintf(X11_vmsbuf, "T%04d%04d%s\n", x, y, str);
  338.        X11_vmsqiow(X11_vmsbuf);
  339.     }
  340. }
  341.  
  342. TERM_PUBLIC int X11_justify_text(mode) enum JUSTIFY mode; { 
  343.    sprintf(X11_vmsbuf, "J%04d\n", mode);
  344.    X11_vmsqiow(X11_vmsbuf);
  345.    return(TRUE);
  346.    }
  347.  
  348. TERM_PUBLIC void X11_point(x,y,number) unsigned int x,y; int number; {
  349.    if (number>=0)
  350.       number %= POINT_TYPES;
  351.    number += 1;
  352.    sprintf(X11_vmsbuf, "P%01d%04d%04d\n", number, x, y);
  353.    X11_vmsqiow(X11_vmsbuf);
  354.    }
  355. #endif /* VMS */
  356.  
  357. #endif /* TERM_BODY */
  358.  
  359. #ifdef TERM_TABLE
  360.  
  361. TERM_TABLE_START(x11_driver)
  362.       "x11", "X11 Window System",
  363.        X11_XMAX, X11_YMAX, X11_VCHAR, X11_HCHAR, 
  364.        X11_VTIC, X11_HTIC, options_null, X11_init, X11_reset, 
  365.        X11_text, null_scale, X11_graphics, X11_move, X11_vector, 
  366.        X11_linetype, X11_put_text, null_text_angle, 
  367.        X11_justify_text, X11_point, do_arrow, set_font_null,
  368.       0, /* pointsize */
  369.       TERM_CAN_MULTIPLOT,
  370.       X11_text /* suspend can use same routine */, 0 /* resume */
  371. TERM_TABLE_END(x11_driver)
  372.  
  373. #undef LAST_TERM
  374. #define LAST_TERM x11_driver
  375.  
  376. TERM_TABLE_START(X11_driver)
  377.       "X11", "X11 Window System (identical to x11)",
  378.        X11_XMAX, X11_YMAX, X11_VCHAR, X11_HCHAR, 
  379.        X11_VTIC, X11_HTIC, options_null, X11_init, X11_reset, 
  380.        X11_text, null_scale, X11_graphics, X11_move, X11_vector, 
  381.        X11_linetype, X11_put_text, null_text_angle, 
  382.        X11_justify_text, X11_point, do_arrow, set_font_null,
  383.       0, /* pointsize */
  384.       TERM_CAN_MULTIPLOT,
  385.       X11_text /* suspend can use same routine */, 0 /* resume */
  386. TERM_TABLE_END(X11_driver)
  387.  
  388. #undef LAST_TERM
  389. #define LAST_TERM x11_driver
  390.  
  391. #endif /* TERM_TABLE */
  392. #endif /* TERM_PROTO_ONLY */
  393.  
  394.  
  395. #ifdef TERM_HELP
  396. START_HELP(x11)
  397. "1 x11",
  398. "?set terminal x11",
  399. "?x11",
  400. " `gnuplot` provides the `x11` terminal type for use with X servers.  This",
  401. " terminal type is set automatically at startup if the `DISPLAY` environment",
  402. " variable is set, if the `TERM` environment variable is set to `xterm`, or if",
  403. " the `-display` command line option is used.",
  404. "",
  405. " For terminal type `x11`, `gnuplot` accepts the standard X Toolkit options and",
  406. " resources such as geometry, font, and background as command line options.",
  407. " See the X(1) man page for a description of the options.",
  408. "",
  409. " In addition to the X Toolkit options, the following command line options are",
  410. " available:",
  411. "@start table - first is interactive cleartext form",
  412. "  `-mono`  forces monochrome rendering on color displays.",
  413. "  `-gray`  requests grayscale rendering on grayscale or color displays.",
  414. "           (Grayscale displays receive monochrome rendering by default.)",
  415. "  `-clear` requests that the window be cleared momentarily before a",
  416. "           new plot is displayed.",
  417. "  `-tvtwm` requests that geometry specifications for position of the",
  418. "           window be made relative to the currently displayed portion",
  419. "           of the virtual root.",
  420. "#`-mono`  & forces monochrome rendering on color displays. & \\",
  421. "#`-gray`  & requests grayscale rendering on grayscale or color displays.",
  422. "#         & (Grayscale displays receive monochrome rendering by default.) & \\",
  423. "#`-clear` & requests that the window be cleared momentarily before a",
  424. "#         & new plot is displayed. & \\",
  425. "#`-tvtwm` & requests that geometry specifications for position of the",
  426. "#         & window be made relative to the currently displayed portion",
  427. "#         & of the virtual root. & \\",
  428. "%`-mono`@@forces monochrome rendering on color displays.",
  429. "%`-gray`@@requests grayscale rendering on grayscale or color displays.",
  430. "%       @@(Grayscale displays receive monochrome rendering by default.)",
  431. "%`-clear`@@requests that the window be cleared momentarily before a",
  432. "%        @@new plot is displayed.",
  433. "%`-tvtwm`@@requests that geometry specifications for position of the",
  434. "%        @@window be made relative to the currently displayed portion",
  435. "%        @@of the virtual root.",
  436. "@end table",
  437. " These options may also be controlled with resources in your `.Xdefaults`",
  438. " file.  For example: `gnuplot*gray: on` .",
  439. "",
  440. " `gnuplot` provides a command line option (`-pointsize v`) and a resource",
  441. " (`gnuplot*pointsize: v`) to control the size of points plotted with the",
  442. " `points` plotting style.  The value `v` is a real number (greater than 0 and",
  443. " less than or equal to ten) used as a scaling factor for point sizes.  For",
  444. " example, `-pointsize 2` uses points twice the default size, and `-pointsize`",
  445. " `0.5` uses points half the normal size.",
  446. "",
  447. " For monochrome displays, `gnuplot` does not honor foreground or background",
  448. " colors.  The default is black-on-white.  `-rv` or `gnuplot*reverseVideo: on`",
  449. " requests white-on-black.",
  450. "",
  451. " For color displays, `gnuplot` honors the following resources (shown here with",
  452. " their default values).  The values may be color names as listed in the X11",
  453. " rgb.txt file on your system, hexadecimal RGB color specifications (see X11",
  454. " documentation), or a color name followed by a comma and an `intensity` value",
  455. " from 0 to 1.  For example, `blue,.5` means a half intensity blue.",
  456. "@start table - first is interactive cleartext form",
  457. "  gnuplot*background: white",
  458. "  gnuplot*textColor: black",
  459. "  gnuplot*borderColor: black",
  460. "  gnuplot*axisColor: black",
  461. "  gnuplot*line1Color: red",
  462. "  gnuplot*line2Color: green",
  463. "  gnuplot*line3Color: blue",
  464. "  gnuplot*line4Color: magenta",
  465. "  gnuplot*line5Color: cyan",
  466. "  gnuplot*line6Color: sienna",
  467. "  gnuplot*line7Color: orange",
  468. "  gnuplot*line8Color: coral",
  469. "#&gnuplot*background: white",
  470. "#&gnuplot*textColor: black",
  471. "#&gnuplot*borderColor: black",
  472. "#&gnuplot*axisColor: black",
  473. "#&gnuplot*line1Color: red",
  474. "#&gnuplot*line2Color: green",
  475. "#&gnuplot*line3Color: blue",
  476. "#&gnuplot*line4Color: magenta",
  477. "#&gnuplot*line5Color: cyan",
  478. "#&gnuplot*line6Color: sienna",
  479. "#&gnuplot*line7Color: orange",
  480. "#@@gnuplot*line8Color: coral",
  481. "%@@gnuplot*background: white",
  482. "%@@gnuplot*textColor: black",
  483. "%@@gnuplot*borderColor: black",
  484. "%@@gnuplot*axisColor: black",
  485. "%@@gnuplot*line1Color: red",
  486. "%@@gnuplot*line2Color: green",
  487. "%@@gnuplot*line3Color: blue",
  488. "%@@gnuplot*line4Color: magenta",
  489. "%@@gnuplot*line5Color: cyan",
  490. "%@@gnuplot*line6Color: sienna",
  491. "%@@gnuplot*line7Color: orange",
  492. "%@@gnuplot*line8Color: coral",
  493. "@end table",
  494. "",
  495. " When `-gray` is selected, `gnuplot` honors the following resources for",
  496. " grayscale or color displays (shown here with their default values).  Note",
  497. " that the default background is black.",
  498. "@start table - first is interactive cleartext form",
  499. "  gnuplot*background: black",
  500. "  gnuplot*textGray: white",
  501. "  gnuplot*borderGray: gray50",
  502. "  gnuplot*axisGray: gray50",
  503. "  gnuplot*line1Gray: gray100",
  504. "  gnuplot*line2Gray: gray60",
  505. "  gnuplot*line3Gray: gray80",
  506. "  gnuplot*line4Gray: gray40",
  507. "  gnuplot*line5Gray: gray90",
  508. "  gnuplot*line6Gray: gray50",
  509. "  gnuplot*line7Gray: gray70",
  510. "  gnuplot*line8Gray: gray30",
  511. "#&gnuplot*background: black",
  512. "#&gnuplot*textGray: white",
  513. "#&gnuplot*borderGray: gray50",
  514. "#&gnuplot*axisGray: gray50",
  515. "#&gnuplot*line1Gray: gray100",
  516. "#&gnuplot*line2Gray: gray60",
  517. "#&gnuplot*line3Gray: gray80",
  518. "#&gnuplot*line4Gray: gray40",
  519. "#&gnuplot*line5Gray: gray90",
  520. "#&gnuplot*line6Gray: gray50",
  521. "#&gnuplot*line7Gray: gray70",
  522. "#&gnuplot*line8Gray: gray30",
  523. "%@@gnuplot*background: black",
  524. "%@@gnuplot*textGray: white",
  525. "%@@gnuplot*borderGray: gray50",
  526. "%@@gnuplot*axisGray: gray50",
  527. "%@@gnuplot*line1Gray: gray100",
  528. "%@@gnuplot*line2Gray: gray60",
  529. "%@@gnuplot*line3Gray: gray80",
  530. "%@@gnuplot*line4Gray: gray40",
  531. "%@@gnuplot*line5Gray: gray90",
  532. "%@@gnuplot*line6Gray: gray50",
  533. "%@@gnuplot*line7Gray: gray70",
  534. "%@@gnuplot*line8Gray: gray30",
  535. "@end table",
  536. "",
  537. " `gnuplot` honors the following resources for setting the width (in pixels) of",
  538. " plot lines (shown here with their default values.)  0 or 1 means a minimal",
  539. " width line of 1 pixel width.  A value of 2 or 3 may improve the appearance of",
  540. " some plots.",
  541. "@start table - first is interactive cleartext form",
  542. "  gnuplot*borderWidth: 2",
  543. "  gnuplot*axisWidth: 0",
  544. "  gnuplot*line1Width: 0",
  545. "  gnuplot*line2Width: 0",
  546. "  gnuplot*line3Width: 0",
  547. "  gnuplot*line4Width: 0",
  548. "  gnuplot*line5Width: 0",
  549. "  gnuplot*line6Width: 0",
  550. "  gnuplot*line7Width: 0",
  551. "  gnuplot*line8Width: 0",
  552. "#&gnuplot*borderWidth: 2",
  553. "#&gnuplot*axisWidth: 0",
  554. "#&gnuplot*line1Width: 0",
  555. "#&gnuplot*line2Width: 0",
  556. "#&gnuplot*line3Width: 0",
  557. "#&gnuplot*line4Width: 0",
  558. "#&gnuplot*line5Width: 0",
  559. "#&gnuplot*line6Width: 0",
  560. "#&gnuplot*line7Width: 0",
  561. "#&gnuplot*line8Width: 0",
  562. "%@@gnuplot*borderWidth: 2",
  563. "%@@gnuplot*axisWidth: 0",
  564. "%@@gnuplot*line1Width: 0",
  565. "%@@gnuplot*line2Width: 0",
  566. "%@@gnuplot*line3Width: 0",
  567. "%@@gnuplot*line4Width: 0",
  568. "%@@gnuplot*line5Width: 0",
  569. "%@@gnuplot*line6Width: 0",
  570. "%@@gnuplot*line7Width: 0",
  571. "%@@gnuplot*line8Width: 0",
  572. "@end table",
  573. "",
  574. " `gnuplot` honors the following resources for setting the dash style used for",
  575. " plotting lines.  0 means a solid line.  A two-digit number `jk` (`j` and `k`",
  576. " are >= 1  and <= 9) means a dashed line with a repeated pattern of `j` pixels",
  577. " on followed by `k` pixels off.  For example, '16' is a \"dotted\" line with one",
  578. " pixel on followed by six pixels off.  More elaborate on/off patterns can be",
  579. " specified with a four-digit value.  For example, '4441' is four on, four off,",
  580. " four on, one off.  The default values shown below are for monochrome displays",
  581. " or monochrome rendering on color or grayscale displays.  For color displays,",
  582. " the default for each is 0 (solid line) except for `axisDashes` which defaults",
  583. " to a '16' dotted line.",
  584. "@start table - first is interactive cleartext form",
  585. "  gnuplot*borderDashes: 0",
  586. "  gnuplot*axisDashes: 16",
  587. "  gnuplot*line1Dashes: 0",
  588. "  gnuplot*line2Dashes: 42",
  589. "  gnuplot*line3Dashes: 13",
  590. "  gnuplot*line4Dashes: 44",
  591. "  gnuplot*line5Dashes: 15",
  592. "  gnuplot*line6Dashes: 4441",
  593. "  gnuplot*line7Dashes: 42",
  594. "  gnuplot*line8Dashes: 13",
  595. "#&gnuplot*borderDashes: 0",
  596. "#&gnuplot*axisDashes: 16",
  597. "#&gnuplot*line1Dashes: 0",
  598. "#&gnuplot*line2Dashes: 42",
  599. "#&gnuplot*line3Dashes: 13",
  600. "#&gnuplot*line4Dashes: 44",
  601. "#&gnuplot*line5Dashes: 15",
  602. "#&gnuplot*line6Dashes: 4441",
  603. "#&gnuplot*line7Dashes: 42",
  604. "#&gnuplot*line8Dashes: 13",
  605. "%@@gnuplot*borderDashes: 0",
  606. "%@@gnuplot*axisDashes: 16",
  607. "%@@gnuplot*line1Dashes: 0",
  608. "%@@gnuplot*line2Dashes: 42",
  609. "%@@gnuplot*line3Dashes: 13",
  610. "%@@gnuplot*line4Dashes: 44",
  611. "%@@gnuplot*line5Dashes: 15",
  612. "%@@gnuplot*line6Dashes: 4441",
  613. "%@@gnuplot*line7Dashes: 42",
  614. "%@@gnuplot*line8Dashes: 13",
  615. "@end table",
  616. "",
  617. " The size or aspect ratio of a plot may be changed by resizing the `gnuplot`",
  618. " window."
  619. END_HELP(x11)
  620. #endif
  621.